﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xeralabs.Common;

namespace Xeralabs.Core
{
    [Flags]
    public enum Priority : byte
    {
        None = 0,
        Forced = 1,
        Low = 2,
        Normal = 4,
        High = 8,
        Log = 16,
        Internal = 32,
        System = 64,
        Kernel = 128,
        Max = 255
    }

    public interface IEvent
    {
        ulong Sender { get; }
        ulong Reciver { get; }
        double DeltaTime { get; }
        double Time { get; }
        byte Priority { get; }
        IMessage Message { get; }
    }

    public interface IMessage
    {
    }

    public abstract class MessagePool<TMsg> : Pool<TMsg> where TMsg : IMessage
    {
    }
}
